Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models of assembly designs. A number of different modeling techniques can be used to create a model of an assembly. These techniques include solid modeling, wire-frame modeling, and surface modeling. Solid modeling techniques provide for topological 3D models formed from a collection of interconnected edges and faces. Geometrically, a 3D solid model is a collection of trimmed surfaces. The trimmed surfaces correspond to the topological faces bounded by the edges. Wire-frame modeling techniques, on the other hand, can be used to represent a model as a simple line drawing. Surface modeling can be used to represent a model's exterior surfaces. CAD systems may combine these, and other, modeling techniques. For example, parametric modeling techniques can be used to define various parameters for different components of a model. Solid modeling and parametric modeling can be combined in CAD systems supporting parametric solid modeling.
An assembly design contains various shapes (e.g., fillets, extrusions, and holes), hereinafter referred to as features. Many times, features are designed with the intent of providing a connection to a particular part. For example, a hole is a feature and may be designed as a connection for a fastener. The design engineer, when designing the hole, typically designs the hole with a specific fastener in mind, which in many cases, is an industry standard part.
When designing an assembly, a design engineer may need to incorporate a standard part in an assembly model. Rather than re-designing a standard part, the part may be retrieved from a database of existing parts. Commercially available component databases contain computer models for standard physical parts. Such databases are referred to as part libraries. Examples of commercially available part libraries are the Genius Fastener Library from Autodesk, Inc. of San Rafael, Calif., the Solid Edge Fastener Library available from Unigraphics Solutions Inc. of St. Louis, Mo., and the SolidWorks Toolbox from SolidWorks Corporation of Concord, Mass. (formally the Toolbox/SE Browser from CIMLOGIC, Inc. of Nashua, N.H.).
The SolidWorks Toolbox part library stores one part model for each class of parts, and a set of features or parameters for each class member. Using the 3D configuration capabilities of the SolidWorks® 2000 software, features and parameters for each unique part are stored as one or more attributes that reference the part model. For example, one configuration may have an attribute that defines a screw's drive head as having a slot or having a profile shaped as a hexagon. The 3D configurations are created as needed during the design process after the valid relationships in the database are displayed in a user interface dialog box and a design engineer selects those relationships desired in the part.
The SolidWorks Toolbox part library is extendable. A part may be added by first selecting a part name from a feature manager design tree or by picking a part in the modeling portion of the window. The design engineer may also modify the existing part library in such a way as to reduce the number of parts that may be retrieved. Reducing the size of the part library may be desirable to reflect existing inventory and to include only those parts that a corporation permits employees to purchase. To reduce the size of the part library, a part may be deleted or a permission necessary to access the part may be removed.
CAD systems that provide an interface to a part library enable design engineers to import pre-defined component parts into the CAD system's modeling space. To import a predefined part, the design engineer must first access the database then initiate a database search for the desired part. Conventional techniques for performing a database search include manual searches by a design engineer. The design engineer may scan an index containing filenames and/or part numbers and then select an item from the index. Alternatively, the design engineer may compose a database query that produces and issues a search command to the database system. The design engineer typically interacts directly with the database program in filtering and selecting among search results.
When the design engineer locates an appropriate part, a preview of the part may be displayed to allow the design engineer to view, and possibly reject, the part, before issuing a command to download the part into the CAD system's modeling space. The download command calls on one or more interface functions (i.e., software that controls communication between the part library and the CAD application), to retrieve the model of the standard part from the database and copy the model of the part to the CAD application's modeling space. After a part is imported into the modeling space, the design engineer may examine and analyze the imported part to be assured that the part is appropriate for the assembly. The part may then be inserted into the assembly model by establishing a connection with a feature in that model.
To insert the part into the assembly model, the part must be positioned relative to a feature in the assembly. The designer may issue commands via the user interface to move the part to the appropriate location within the assembly model and ensure that the part is properly aligned. Alternatively, existing technology may be used to automatically position (i.e., locate and align), a part with respect to a feature. The SolidWorks® 2000 software, available from SolidWorks Corporation of Concord, Mass., can infer mating relationships between a feature and a part by analyzing geometric characteristics of the feature and the part, then determining the correct position (including alignment) of the part with respect to the feature. Such mate inferencing is described in U.S. Pat. No. 6,219,049.
To infer mating relationships, the SolidWorks® 2000 software analyzes a characteristic set of geometries for a chosen part. For example, a bolt may include characteristic geometries of a cylinder for the shank and characteristic geometries of a plane for the face under the bolt's head. Complimentary geometries are then found in the feature, such as a cylindrical hole.
One technique that may be implemented for finding complimentary geometries of a chosen part and a feature is a logic table, in which characteristic geometries are related to mate types. In the logic table, a characteristic geometry, such as an axis, may be related to a concentric mate constraint, whereas a characteristic geometry, such as a plane, may be related to a coincident mate constraint. Possible target geometries that can satisfy mate constraints for the characteristic geometry may then be found using another table that identifies mating geometries. An axis with a concentric mate constraint requires a circular edge or conical face. A plane with a coincident mate constraint may have a mating geometry that is another coincident face. The part is then mated to the feature by positioning the characteristic geometries in the component with respect to target geometries in the feature.
During the modeling process, the design engineer may modify a feature. For example, the diameter of a hole may be enlarged or the depth of a hole may be increased. In either case, the part may no longer be appropriate for the feature. The design engineer may also decide to replace a part that was retrieved from a part library with another part in the library, which may cause the feature and newly retrieved part to become incompatible.
The design engineer must maintain the connection between the feature and the part when either the feature or the part is modified. If the design engineer changes the characteristics of the hole, a new fastener must be found and incorporated into the assembly model using the manual process previously described. If the design engineer changes characteristics of the fastener, the hole may need to be modified to account for the fastener's changed characteristics.
Before a feature is modified or a part is exchanged, the engineer must first remove the component that is no longer needed, then repeat the interactive process of incorporating a database component in an assembly model. Thus, the engineer must access the database application, find an appropriate part in the database, download the appropriate part from the database into the CAD system, and position the part with respect to a feature in the assembly.
One limitation of part selection and integration in a typical CAD systems is the speed and accuracy in which a part can be retrieved from a part library and integrated into an assembly model. This limitation results from the active role of the design engineer in selecting the part and integrating it with the model. The design engineer may need to use trial and error techniques to retrieve a part, or may need to re-measure the feature before retrieving an appropriate part (e.g., in the event that the design engineer cannot recall the correct size of the feature). Furthermore, typical CAD systems do not have a mechanism for establishing and maintaining an association between a feature and a connecting part in the part library. Although, a feature may be automatically created after a design engineer describes the feature, the description is not utilized to describe a part, or set of parts, that may connect to the described feature.
An example of automated feature creation is found in the SolidWorks® 2000 CAD system. Solidworks 2000 can automatically create holes using a feature generator known as the hole wizard tool. The hole wizard tool can define a hole feature based on a series of parameters specified by the user. For example, a ¼″ counterbore through-hole has an attribute that specifies the diameter of the hole and contains a value that is appropriate so that a ¼″ screw can fit without interference, an attribute that specifies the style of the hole and contains the value “counterbore,” and an attribute that specifies the depth of the hole and contains a value that is automatically calculated by the system after the system determines if the hole is a “through hole” or a “blind hole.” (“Through holes” pierce an object, whereas “blind holes” end before penetrating an object.) The appropriate hole feature, having an appropriate depth, is automatically generated by dimensioning a sketch of the hole feature in accordance with the specified parameters and preset parameters (e.g., chamfer angle). The parameters specified using the hole wizard tool become attributes that are contained in the data structure that defines a hole. However, the attribute is only used to geometrically recreate the feature for display purposes and to enable the design engineer to edit the parameters of the hole. To identifiy a fastener that fits the created hole, the design engineer must manually compose a database query that includes the parameters specified using the hole wizard tool.
Some commercially available CAD modeling systems integrate or interface to component databases, and some aid in the initial placement of those components by locating and aligning the component. However, modeling systems do not have the ability to find the features and automatically populate the features by retrieving a database component and placing that database component in an appropriate location with respect to the feature. Additionally, modeling systems do not have the ability to maintain the connection between a feature and a part that was initially retrieved from a database.